package com.yc.blog;

import java.util.Arrays;
import java.util.Comparator;


public class TestLambda4 {
	
	/**
	 * 测试方法引用1: 使用Comparator内部类
	 * 对Integer数组排序
	 */
	public void testMethod1() {
		Integer[] arr = new Integer[] {8,2,4,1,0,6,7};
		Arrays.sort(arr, new Comparator<Integer>() {

			@Override
			public int compare(Integer o1, Integer o2) {
				return o1-o2;
			}
		});
		
		for (Integer integer : arr) {
			System.out.println(integer);
		}
		
	}
	
	/**
	 * 测试方法引用2: 使用Lambda表达式替代内部类
	 * 对Integer数组排序
	 */
	public void testMethod2() {
		Integer[] arr = new Integer[] {8,2,4,1,0,6,7};
		Arrays.sort(arr, (o1, o2) -> {
			return o1-o2;
		});
		
		for (Integer integer : arr) {
			System.out.println(integer);
		}
		
	}
	
	/**
	 * 测试方法引用3: 使用方法引用再简化Lambda写法
	 * 对Integer数组排序
	 */
	public void testMethod3() {
		Integer[] arr = new Integer[] {8,2,4,1,0,6,7};
		Arrays.sort(arr, Integer::compareTo);
		
		for (Integer integer : arr) {
			System.out.println(integer);
		}
		
	}

	public static void main(String[] args) {
		TestLambda4 tl = new TestLambda4();
		tl.testMethod1();
		System.out.println("----------------------");
		tl.testMethod2();
		System.out.println("----------------------");
		tl.testMethod3();

	}

}
